home *** CD-ROM | disk | FTP | other *** search
/ The Very Best of Atari Inside / The Very Best of Atari Inside 1.iso / mint / mntlib25 / ctype.c < prev    next >
C/C++ Source or Header  |  1992-09-04  |  3KB  |  68 lines

  1. /* from dLibs, by Dale Schumacher */
  2.  
  3. /*
  4.  *  CTYPE.C    Character classification and conversion
  5.  */
  6.  
  7. #include <ctype.h>
  8. #include <limits.h>
  9.  
  10. #undef    toupper /* note that in gcc we have a safe version of these, */
  11. #undef  tolower    /* but its better to leave these as routines in case */
  12.         /* some code uses these as function pointers --  i   */
  13.         /* have seen code that does.                 */
  14.  
  15. static unsigned char _myctype[UCHAR_MAX+1] =
  16.     {
  17.     _CTc, _CTc, _CTc, _CTc,                /* 0x00..0x03 */
  18.     _CTc, _CTc, _CTc, _CTc,                /* 0x04..0x07 */
  19.     _CTc, _CTc|_CTs, _CTc|_CTs, _CTc|_CTs,        /* 0x08..0x0B */
  20.     _CTc|_CTs, _CTc|_CTs, _CTc, _CTc,        /* 0x0C..0x0F */
  21.  
  22.     _CTc, _CTc, _CTc, _CTc,                /* 0x10..0x13 */
  23.     _CTc, _CTc, _CTc, _CTc,                /* 0x14..0x17 */
  24.     _CTc, _CTc, _CTc, _CTc,                /* 0x18..0x1B */
  25.     _CTc, _CTc, _CTc, _CTc,                /* 0x1C..0x1F */
  26.  
  27.     _CTs, _CTp, _CTp, _CTp,                /* 0x20..0x23 */
  28.     _CTp, _CTp, _CTp, _CTp,                /* 0x24..0x27 */
  29.     _CTp, _CTp, _CTp, _CTp,                /* 0x28..0x2B */
  30.     _CTp, _CTp, _CTp, _CTp,                /* 0x2C..0x2F */
  31.  
  32.     _CTd|_CTx, _CTd|_CTx, _CTd|_CTx, _CTd|_CTx,    /* 0x30..0x33 */
  33.     _CTd|_CTx, _CTd|_CTx, _CTd|_CTx, _CTd|_CTx,    /* 0x34..0x37 */
  34.     _CTd|_CTx, _CTd|_CTx, _CTp, _CTp,        /* 0x38..0x3B */
  35.     _CTp, _CTp, _CTp, _CTp,                /* 0x3C..0x3F */
  36.  
  37.     _CTp, _CTu|_CTx, _CTu|_CTx, _CTu|_CTx,        /* 0x40..0x43 */
  38.     _CTu|_CTx, _CTu|_CTx, _CTu|_CTx, _CTu,        /* 0x44..0x47 */
  39.     _CTu, _CTu, _CTu, _CTu,                /* 0x48..0x4B */
  40.     _CTu, _CTu, _CTu, _CTu,                /* 0x4C..0x4F */
  41.  
  42.     _CTu, _CTu, _CTu, _CTu,                /* 0x50..0x53 */
  43.     _CTu, _CTu, _CTu, _CTu,                /* 0x54..0x57 */
  44.     _CTu, _CTu, _CTu, _CTp,                /* 0x58..0x5B */
  45.     _CTp, _CTp, _CTp, _CTp,                /* 0x5C..0x5F */
  46.  
  47.     _CTp, _CTl|_CTx, _CTl|_CTx, _CTl|_CTx,        /* 0x60..0x63 */
  48.     _CTl|_CTx, _CTl|_CTx, _CTl|_CTx, _CTl,        /* 0x64..0x67 */
  49.     _CTl, _CTl, _CTl, _CTl,                /* 0x68..0x6B */
  50.     _CTl, _CTl, _CTl, _CTl,                /* 0x6C..0x6F */
  51.  
  52.     _CTl, _CTl, _CTl, _CTl,                /* 0x70..0x73 */
  53.     _CTl, _CTl, _CTl, _CTl,                /* 0x74..0x77 */
  54.     _CTl, _CTl, _CTl, _CTp,                /* 0x78..0x7B */
  55.     _CTp, _CTp, _CTp, _CTc,                /* 0x7C..0x7F */
  56.  
  57.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80..0x8F */
  58.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90..0x9F */
  59.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0..0xAF */
  60.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0..0xBF */
  61.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0..0xCF */
  62.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0..0xDF */
  63.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0..0xEF */
  64.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  /* 0xF0..0xFF */
  65.     };
  66.  
  67. unsigned char *_ctype = &(_myctype[0]);
  68.